package com.yixun.qfbao.api.service;

import com.yixun.qfbao.apidto.PremisesRecommenderDto;
import com.yixun.qfbao.apidto.SyncIntentionRecommenderReqDto;
import com.yixun.qfbao.xf.model.PremisesRecommender;

import java.util.List;
import java.util.Map;

/**
 * @program: channel-parent
 *
 * @description:
 *
 * @author: Seven.wang
 *
 * @create: 2019-11-05 11:23
 **/
public interface PremisesRecommenderService {

    /**
     *  根据楼盘ID查询推荐人列表
     * @param premisesId
     * @return
     */
    List<PremisesRecommenderDto> selectListByPremisesId(Long premisesId);
    
    /**
     *  根据楼盘ID集合查询推荐人列表
     * @param premisesId
     * @return
     */
    Map<String, List<PremisesRecommenderDto>> selectListByPremisesIds(List<Long> premisesIds);

    /**
     *  根据楼盘ID查询楼盘详情推荐人
     * @param premisesId
     * @return
     */
    List<PremisesRecommenderDto> selectListForPremisesInfo(Long premisesId);

    /**
     *  V10同步楼盘推荐人
     * @param premisesId
     * @return
     */
    List<SyncIntentionRecommenderReqDto> selectListForIntentionRecommender(Long premisesId);

    /**
     *  根据推荐人UUID查询推荐人
     * @param recommenderUuid
     * @return
     */
    PremisesRecommenderDto getPremisesRecommenderByUuid(String recommenderUuid);

    /**
     *  批量取消推荐人
     * @param list
     */
    void batchDeleted(List<PremisesRecommender> list);

    /**
     *  批量新增推荐人
     * @param list
     */
    void batchAdd(List<PremisesRecommender> list);

    /**
     *  根据楼盘Id集合，推荐人ID集合 查询推荐人列表
     * @param premisesIds       楼盘Id集合
     * @param recommenderIds    推荐人ID集合
     * @param deleteFlag
     * @return
     */
    List<PremisesRecommender> selectListByIds(List<Long> premisesIds, List<Long> recommenderIds, String deleteFlag);

    /**
     *  根据楼盘ID查询推荐人列表
     * @param premisesId
     * @return PremisesRecommender
     */
    List<PremisesRecommender> selectPremisesRecommenderByPremisesId(Long premisesId);

    /**
     *  查询所有推荐人
     * @return
     */
    List<PremisesRecommenderDto> selectPremisesRecommenderList(Long companyId);

    /**
     *  查询所有推荐人
     * @return
     */
    List<PremisesRecommenderDto> selectRecommenderList(Long companyId);

    /**
     *  根据推荐人id
     */
    List<PremisesRecommender> selectPremisesRecommenderById(Long recommenderId);
}
